home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Serious Demos / DesignWorks 4.0.1 Demo PPC / Design Kits / Generic Spice / Scripts / SPICE Error Script < prev    next >
Text File  |  1997-05-27  |  3KB  |  143 lines

  1. {
  2.   Error checking script for Generic PCB Design Kit
  3.   C. Dewhurst, May 27, 1997
  4.   ©1996 Capilano Computing Systems Ltd.
  5.   
  6.   This script checks for:
  7.   
  8.   - Devices without a Spice param
  9.   - Bad device names
  10.   - Bad or duplicate signal names
  11. }
  12. {
  13.   First, see if we're clearing all errors
  14. }
  15. $IF($EQ(&_Operation, UnmarkOK))
  16. $REPORTOFF
  17. $IF($NOT($ALERT2(This will clear all Mark as OK settings in this design!)))
  18. $ABORT
  19. $END
  20. $DEVICES$CLEARERRORS
  21. $SIGNALS$CLEARERRORS
  22. $ABORT
  23. $END
  24. {
  25.   If we're doing a "Mark as OK", we don't want any report
  26. }
  27. $IF($EQ(&_Operation, MarkOK))
  28. $REPORTOFF
  29. $IF($NOT($ALERT2(This will mark all current errors as OK!)))
  30. $ABORT
  31. $END
  32. $ELSE
  33. $CREATEREPORT($DESIGNNAME Errors) $PROMPT
  34. $END
  35. {
  36.   Listing defaults
  37. }
  38. $PROGRESS $PERCENTOFF
  39. $DESIGNSIGSOURCE &SigSources
  40. $AUTONUMBER(3)
  41. $BUSNAMEON(_)
  42. $SETVAR(_AnyErrors, 0)
  43. {
  44.   Issue a warning if any devices have no Spice value
  45. }
  46. $FIND $DEVICES $NOT(&Spice) $ERRORBITOFF(8)
  47. $IF($GT($DEVCOUNT, 0))
  48.  
  49. The following devices have no Spice attribute value:
  50.  
  51. $SORT $DEVICES $DEVNAME
  52. $COMBDEVSON
  53. $IF($EQ(&_Operation, MarkOK))
  54. $DEVICES$SETERRORBIT(8)
  55. $ELSE
  56. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  57. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  58. $END
  59. $END
  60. {
  61.   Check for bad device names
  62. }
  63. $PROGRESS(Checking device and signal names)
  64. $FIND $DEVICES $NOT($REGEXP(\w+, $DEVNAME)) $ERRORBITOFF(0)
  65. $IF($GT($DEVCOUNT, 0))
  66.  
  67. The following devices have bad device names:
  68.  
  69. $SORT $DEVICES $DEVNAME
  70. $COMBDEVSON
  71. $IF($EQ(&_Operation, MarkOK))
  72. $DEVICES$SETERRORBIT(0)
  73. $ELSE
  74. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  75. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  76. $END
  77. $END
  78. {
  79.   Check for bad signal names
  80. }
  81. $UNNAMEDSIGS(????)
  82. $FIND $SIGNALS $NOT($REGEXP(\w+, $SIGNAME)) $ERRORBITOFF(0)
  83. $IF($GT($SIGCOUNT, 0))
  84.  
  85. The following signals have bad names:
  86.  
  87. $SORT $SIGNALS $SIGNAME
  88. $IF($EQ(&_Operation, MarkOK))
  89. $SIGNALS$SETERRORBIT(0)
  90. $ELSE
  91. $FIND $DEVICES
  92. $SIGNALS$SIGNAME    $PINS
  93. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  94. $END
  95. $END
  96. {
  97.   Check for duplicate signal names
  98. }
  99. $FIND $SIGNALS
  100. $COMBSIGSON
  101. $SORT $SIGNALS $SIGNAME
  102. $FIND $NOCLEAR $SIGNALS $COUNT(2) $ERRORBITOFF(1)
  103. $IF($GT($SIGCOUNT, 0))
  104.  
  105. The following signals have duplicate names:
  106.  
  107. $SORT $SIGNALS $SIGNAME
  108. $IF($EQ(&_Operation, MarkOK))
  109. $SIGNALS$SETERRORBIT(1)
  110. $ELSE
  111. $SIGNALS$SIGNAME    $PAGE
  112. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  113. $END
  114. $END
  115. {
  116.   Check for null signals
  117. }
  118. $FIND $DEVICES
  119. $FIND $SIGNALS $NUMPINS(1) $NOT($NUMPINS(2)) $ERRORBITOFF(2)
  120. $COMBSIGSOFF
  121. $IF($GT($SIGCOUNT, 0))
  122.  
  123. The following signals have only one pin connection:
  124.  
  125. $SORT $SIGNALS $SIGNAME
  126. $IF($EQ(&_Operation, MarkOK))
  127. $SIGNALS$SETERRORBIT(2)
  128. $ELSE
  129. $SIGNALS$SIGNAME    $PAGE
  130. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  131. $END
  132. $END
  133. {
  134.   If we're reporting, put up an error box
  135. }
  136. $IF($NE(&_Operation, MarkOK))
  137. $IF($GT(&_AnyErrors, 0))
  138. $NULL($ALERT1(&_AnyErrors errors found!))
  139. $ELSE
  140. $NULL($ALERT1(No errors found!))
  141. $END
  142. $END
  143.